/**
 * 设计器常量
 */

/**
 * lua程序主文件名
 */
export const MAIN_NAME = 'main'

/**
 * lua程序界面入口文件名
 */
export const MAIN_UI_NAME = 'main_ui'

/**
 * 设计页面展示内容的类型
 */
export const DESIGNER_TYPE = {
  CODE: 'code',
  UI: 'Page'
}

/**
 * 代码编辑器支持的语言
 */
export const CODE_EDITOR_LANG = {
  LUA: 'lua',
  JSON: 'json',
  JS: 'javascript',
  HTML: 'html',
  CSS: 'css'
}

/**
 * 屏幕的默认尺寸
 */
export const SCREEN_DEFAULT_SIZE = {
  WIDTH: 1024,
  HEIGHT: 600,
  ORIENTATION: 0
}

/**
 * 页面背景类型
 */
export const PAGE_BG_TYPE = {
  COLOR: 1,
  IMG: 2
}

/**
 * 页面默认属性
 */
export const PAGE_DEFAULT_PROPS = {
  X: 0,
  Y: 0,
  W: SCREEN_DEFAULT_SIZE.WIDTH,
  H: SCREEN_DEFAULT_SIZE.HEIGHT,
  // 1：代表颜色背景，2：代表图片背景
  BG_TYPE: 1,
  IMG: '',
  RGB: '#808080',
  OPA: 255
}

/**
 * 对其方式
 */
export const ALIGN_TYPE = {
  // 默认对齐方式,由具体对象确定
  LV_ALIGN_DEFAULT: 0,
  // 参考对象内部的左上角对齐
  LV_ALIGN_TOP_LEFT: 1,
  // 参考对象内部的上方居中对齐
  LV_ALIGN_TOP_MID: 2,
  // 参考对象内部的右上角对齐
  LV_ALIGN_TOP_RIGHT: 3,
  // 参考对象内部的左下角对齐
  LV_ALIGN_BOTTOM_LEFT: 4,
  // 参考对象内部的下方居中对齐
  LV_ALIGN_BOTTOM_MID: 5,
  // 参考对象内部的右下角对齐
  LV_ALIGN_BOTTOM_RIGHT: 6,
  // 参考对象内部的左侧居中对齐
  LV_ALIGN_LEFT_MID: 7,
  // 参考对象内部的右侧居中对齐
  LV_ALIGN_RIGHT_MID: 8,
  // 参考对象内部的中心对齐
  LV_ALIGN_CENTER: 9,

  // 参考对象外部上方的左对齐
  LV_ALIGN_OUT_TOP_LEFT: 10,
  // 参考对象外部上方的居中对齐
  LV_ALIGN_OUT_TOP_MID: 11,
  // 参考对象外部上方的右对齐
  LV_ALIGN_OUT_TOP_RIGHT: 12,
  // 参考对象外部下方的左对齐
  LV_ALIGN_OUT_BOTTOM_LEFT: 13,
  // 参考对象外部下方的居中对齐
  LV_ALIGN_OUT_BOTTOM_MID: 14,
  // 参考对象外部下方的右对齐
  LV_ALIGN_OUT_BOTTOM_RIGHT: 15,
  // 参考对象外部的左侧顶部对齐
  LV_ALIGN_OUT_LEFT_TOP: 16,
  // 参考对象外部的左侧中间对齐
  LV_ALIGN_OUT_LEFT_MID: 17,
  // 参考对象外部的左侧底部对齐
  LV_ALIGN_OUT_LEFT_BOTTOM: 18,
  // 参考对象外部的右侧顶部对齐
  LV_ALIGN_OUT_RIGHT_TOP: 19,
  // 参考对象外部的右侧中间对齐
  LV_ALIGN_OUT_RIGHT_MID: 20,
  // 参考对象外部的右侧底部对齐
  LV_ALIGN_OUT_RIGHT_BOTTOM: 21
}

/**
 * 事件出发说明
 */
export const EVENT_TRIGGER = {
  // 所有事件
  LV_EVENT_ALL: 0,
  // 对象被按下
  LV_EVENT_PRESSED: 1,
  // 对象正在被按下（在按下过程中连续调用）
  LV_EVENT_PRESSING: 2,
  // 对象正在被按下，但光标/手指滑出了对象
  LV_EVENT_PRESS_LOST: 3,
  // 对象被按下一小段时间后释放。如果被滚动，则不调用。
  LV_EVENT_SHORT_CLICKED: 4,
  // 对象被按下至少 long_press_time 毫秒。如果被滚动，则不调用
  LV_EVENT_LONG_PRESSED: 5,
  // 在每 long_press_repeat_time 毫秒后调用一次。如果被滚动，则不调用。
  LV_EVENT_LONG_PRESSED_REPEAT: 6,
  // 如果未被滚动，在释放时调用（与长按无关）
  LV_EVENT_CLICKED: 7,
  // 对象被释放
  LV_EVENT_RELEASED: 8,
  // 开始滚动
  LV_EVENT_SCROLL_BEGIN: 9,
  // 滚动结束
  LV_EVENT_SCROLL_END: 10,
  // 滚动
  LV_EVENT_SCROLL: 11,
  // 检测到手势
  LV_EVENT_GESTURE: 12,
  // 发送一个键给对象
  LV_EVENT_KEY: 13,
  // 对象被聚焦
  LV_EVENT_FOCUSED: 14,
  // 对象失去聚焦
  LV_EVENT_DEFOCUSED: 15,
  // 对象失去聚焦，但仍被选中
  LV_EVENT_LEAVE: 16,
  // 执行高级命中测试
  LV_EVENT_HIT_TEST: 17,

  /** Drawing events*/
  // 检查对象是否完全覆盖了一个区域
  LV_EVENT_COVER_CHECK: 18,
  // 获取对象周围所需的额外绘制区域（例如阴影）
  LV_EVENT_REFR_EXT_DRAW_SIZE: 19,
  // 开始主绘制阶段
  LV_EVENT_DRAW_MAIN_BEGIN: 20,
  // 执行主绘制
  LV_EVENT_DRAW_MAIN: 21,
  // 完成主绘制阶段
  LV_EVENT_DRAW_MAIN_END: 22,
  // 开始后绘制阶段（当所有子对象都被绘制时）
  LV_EVENT_DRAW_POST_BEGIN: 23,
  // 执行后绘制阶段（当所有子对象都被绘制时）
  LV_EVENT_DRAW_POST: 24,
  // 完成后绘制阶段（当所有子对象都被绘制时）
  LV_EVENT_DRAW_POST_END: 25,
  // 开始绘制部分。
  LV_EVENT_DRAW_PART_BEGIN: 26,
  // 完成部分绘制
  LV_EVENT_DRAW_PART_END: 27,

  /** Special events*/
  // 对象的值已更改（例如滑块移动）
  LV_EVENT_VALUE_CHANGED: 28,
  // 向对象插入文本。
  LV_EVENT_INSERT: 29,
  // 通知对象刷新其上的一些内容（供用户使用）
  LV_EVENT_REFRESH: 30,
  // 进程已完成
  LV_EVENT_READY: 31,
  // 进程已被取消
  LV_EVENT_CANCEL: 32,

  /** Other events*/
  // 对象正在被删除
  LV_EVENT_DELETE: 33,
  // 子对象已被移除、添加或其大小、位置已更改
  LV_EVENT_CHILD_CHANGED: 34,
  // 子对象已创建，总是在所有父对象中冒泡
  LV_EVENT_CHILD_CREATED: 35,
  // 子对象已被删除，总是在所有父对象中冒泡
  LV_EVENT_CHILD_DELETED: 36,
  // 屏幕卸载已开始，在调用 scr_load 时立即触发
  LV_EVENT_SCREEN_UNLOAD_START: 37,
  // 屏幕加载已开始，在屏幕更改延迟过后触发
  LV_EVENT_SCREEN_LOAD_START: 38,
  // 屏幕已加载
  LV_EVENT_SCREEN_LOADED: 39,
  // 屏幕已卸载
  LV_EVENT_SCREEN_UNLOADED: 40,
  // 对象坐标/大小已更改
  LV_EVENT_SIZE_CHANGED: 41,
  // 对象的样式已更改
  LV_EVENT_STYLE_CHANGED: 42,
  // 子对象位置已更改，因为布局重新计算
  LV_EVENT_LAYOUT_CHANGED: 43,
  // 获取小部件的内部大小
  LV_EVENT_GET_SELF_SIZE: 44
}
